package com.shenglaotuan.community.user.service;

import com.shenglaotuan.community.user.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author ruidong
 * @since 2020-08-03
 */
public interface UserService extends IService<User> {

    /**
     * 发送验证码
     * @param email 邮箱地址
     */
    void sendCode(String email);

    /**
     * 注册
     * @param username 用户名
     * @param password 用户密码
     * @param email 邮箱
     * @param validCode 验证码
     * @param invateCode 邀请码
     * @return token值
     */
    String reg(String username, String password, String email, String validCode, String invateCode);

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return token值
     */
    String login(String username, String password);

    /**
     * 登出
     * @param token token值
     */
    void logout(String token);

    /**
     * 获取用户信息
     * @param uid 用户id
     * @param field 要获取信息的字段
     * @return 用户数据
     */
    User getInfo(String uid, String[] field);

    /**
     * 修改昵称
     * @param nickname 字段名
     * @param id 用户id
     * @return 修改后的昵称
     */
    String changeNickname(String nickname, String id);

    /**
     * 修改密码
     * @param password 密码
     * @param id 用户id
     */
    void changePassword(String password, String id);

    /**
     * 修改头像
     * @param avatar 头像路径
     * @param id 用户id
     * @return 头像路径
     */
    String changeAvatar(String avatar, String id);
}
